

/**
 * 用于添加的公共方法
 * @param {*} model 
 * @param {*} param 
 * @param {*} ctx 
 * @returns 
 */
const add = (model, param, ctx) => (
    model.create(param).then(rel => {
        if (rel) {
            ctx.body = {
                code: 200,
                msg: '添加成功',
                data: rel
            }
        } else {
            ctx.body = {
                code: 300,
                msg: '添加失败'
            }
        }
    }).catch(error => {
        ctx.body = {
            code: 400,
            msg: 'err',
        }
        console.log(error)
    })
)
/**
 * 这是用于删除的公共方法
 * @param {*} model 
 * @param {*} where 
 * @param {*} ctx 
 * @returns 
 */
const del = (model, where, ctx) => (
    model.findOneAndDelete(where).then(rel => {
        ctx.body = {
            code: 200,
            msg: '操作成功！',
            rel
        }
    }).catch(error => {
        ctx.body = {
            code: 400,
            msg: '异常'
        }
        console.log(error)
    })
)

/**
 * 这是用于修改的公共方法
 * @param {*} model 
 * @param {*} where 
 * @param {*} params 
 * @param {*} ctx 
 * @returns 
 */
const update = (model, where, params, ctx) => (
    model.updateOne(
        where,
        params
    ).then(rel => {
        ctx.body = {
            code: 200,
            msg: '修改成功'
        }
    }).catch(error => {
        ctx.body = {
            code: 400,
            msg: '添加异常'
        }
        console.log(error)
    })
)
/**
 * 用于查询的公共方法
 * @param {*} model 
 * @param {*} where 
 * @param {*} ctx 
 * @returns 
 */
const find = (model, where, ctx) => (
    model.find(where).then(rel => {
        ctx.body = {
            code: 200,
            msg: '查询成功',
            data: rel
        }
    }).catch(error => {
        ctx.body = {
            code: 400,
            msg: '异常'
        }
        console.log(error)
    })
)

/**
 * 用于查询单个
 * @param {*} model 
 * @param {*} params 
 * @param {*} ctx 
 */

const findOnedata =(model,params,ctx)=>(
    model.findOne(params)
    .then(rel => {
        if(rel){
            ctx.body = {
                code: 200,
                msg: '查询成功',
                data: rel
              }
        }else{
            ctx.body = {
                code: 404,
                msg: '参数错误',
                data: rel
              }  
        }
  
    }).catch(error => {
      ctx.body = {
        code: 400,
        msg: '异常'
      }
      console.log(error)
    })
)
module.exports = {
    find,
    add,
    update,
    del,
    findOnedata
}